home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / GMS / GMSDev / EModules / gms / files / files.e next >
Encoding:
Text File  |  1998-04-12  |  3.4 KB  |  121 lines

  1. /*
  2. **  $VER: files.e V1.0
  3. **
  4. **  File definitions.
  5. **
  6. **  (C) Copyright 1996-1998 DreamWorld Productions.
  7. **      All Rights Reserved
  8. */
  9.  
  10. OPT MODULE
  11. OPT EXPORT
  12. OPT PREPROCESS
  13.  
  14. MODULE 'gms/dpkernel/dpkernel','gms/system/register','gms/misc/time'
  15.  
  16. /****************************************************************************
  17. ** Module information.
  18. */
  19.  
  20. CONST FILE_MODVERSION  = 1,
  21.       FILE_MODREVISION = 0
  22.  
  23. /****************************************************************************
  24. ** Mini structures for source and destination operations.
  25. */
  26.  
  27. OBJECT filename
  28.   id   :INT       /* ID_FILENAME */
  29.   name :LONG      /* Pointer to filename */
  30. ENDOBJECT
  31.  
  32. /* Memory pointer structure */
  33.  
  34. OBJECT memptr
  35.   id      :INT      /* ID_MEMPTR */
  36.   address :LONG     /* Pointer to memory area */
  37.   size    :LONG     /* Must supply a size unless you are a MemBlock */
  38. ENDOBJECT
  39.  
  40. /****************************************************************************
  41. ** Seek positions.
  42. */
  43.  
  44. CONST POS_BEGINNING = 0,
  45.       POS_CURRENT   = 1,
  46.       POS_END       = 2
  47.  
  48. CONST POS_START = POS_BEGINNING
  49.  
  50. /****************************************************************************
  51. ** File Object.
  52. */
  53.  
  54. CONST VER_FILE  = 1,
  55.       TAGS_FILE = $FFFB0000 OR ID_FILE
  56.  
  57. OBJECT file
  58.   head[1]       :ARRAY OF head /* (-R) Standard header */
  59.   bytepos       :LONG          /* (-R) Current position in file */
  60.   flags         :LONG          /* (IR) File flags */
  61.   source        :PTR TO head   /* (IR) Direct pointer to the original Source structure */
  62.   prev          :PTR TO file   /* (-R) Previous file in chain */
  63.   next          :PTR TO file   /* (-R) Next file in chain */
  64.   dataprocessor :LONG          /* (--) Not available for program use */
  65. ENDOBJECT
  66.  
  67. CONST FLA_FLAGS  = TLONG OR 16,
  68.       FLA_SOURCE = TAPTR OR 20
  69.  
  70. /****************************************************************************
  71. ** Opening flags for Files and Directories.
  72. */
  73.  
  74. CONST FL_OLDFILE     = $00000000,
  75.       FL_WRITE       = $00000001,
  76.       FL_EXCLUSIVE   = $00000002,
  77.       FL_DATAPROCESS = $00000004,
  78.       FL_FIND        = $00000008,
  79.       FL_NOUNPACK    = $00000010,
  80.       FL_NOBUFFER    = $00000020,
  81.       FL_NEWFILE     = $00000040,
  82.       FL_ALPHASORT   = $00000080,
  83.       FL_READ        = $00000100,
  84.       FL_AUTOCREATE  = $00000200
  85.  
  86. CONST FL_NOPACK = FL_NOUNPACK
  87.  
  88. /****************************************************************************
  89. ** Permission flags for Files and Directories.
  90. */
  91.  
  92. CONST FPT_READ     = $00000001,
  93.       FPT_WRITE    = $00000002,
  94.       FPT_EXECUTE  = $00000004,
  95.       FPT_DELETE   = $00000008,
  96.       FPT_SCRIPT   = $00000010,
  97.       FPT_HIDDEN   = $00000020,
  98.       FPT_ARCHIVE  = $00000040,
  99.       FPT_PASSWORD = $00000080
  100.  
  101. /****************************************************************************
  102. ** Directory Object.
  103. */
  104.  
  105. CONST VER_DIRECTORY  = 1,
  106.       TAGS_DIRECTORY = $FFFB0000 OR ID_DIRECTORY
  107.  
  108. OBJECT directory
  109.   head[1]   :ARRAY OF head     /* [00] Standard header */
  110.   childdir  :PTR TO directory  /* [12] First directory in list (master only) */
  111.   childfile :PTR TO file       /* [16] First file in list (master only) */
  112.   source    :PTR TO filename   /* [20] Location and Name of this directory */
  113.   flags     :LONG              /* [24] Opening Flags (see file flags) */
  114.   next      :PTR TO directory  /* [28] Next directory in this list */
  115.   prev      :PTR TO directory  /* [32] Previous directory in this list */
  116. ENDOBJECT
  117.  
  118. CONST DIRA_Source = TAPTR OR 20,
  119.       DIRA_Flags  = TLONG OR 24
  120.  
  121.